package coursesmaritime.visualisation.classes;

import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

/**
 *  Permet d'avoir une image et une position
 * @author Quentin Moquay
 * @version 0.1, 08/04/11
 */
public class BufferedImagePos{

    private Point p;
    private BufferedImage b;

    /**
     * Constructeur
     * @param _b l'image
     * @param x la position x
     * @param y la position y
     */
    public BufferedImagePos(BufferedImage _b, int x,int y) {
        b = _b;
        p = new Point(x,y);
    }

    /**
     * Constructeur
     * @param file l'adresse de l'image
     * @param _p la position sous forme de point
     */
    public BufferedImagePos(String file,Point _p) {
        try{
           b = ImageIO.read(new File(file));
        } catch (IOException e) {
           System.err.println(e.getMessage());
        }
        p = _p;
    }

    /**
     * Constructeur
     * @param file l'adresse de l'image
     */
    public BufferedImagePos(String file){
        try{
           b = ImageIO.read(new File(file));
        } catch (IOException e) {
           System.err.println(e.getMessage());
        }
    }

    /**
     * Constructeur
     * @param file : l'adresse de l'image
     * @param x : le point x de position
     * @param y : le point y de position
     */
    public BufferedImagePos(String file,int x,int y) {
        try{
           b = ImageIO.read(new File(file));
        } catch (IOException e) {
           System.err.println(e.getMessage());
        }
        p = new Point(x,y);
    }

    /**
     * Constructeur
     * @param _b l'image
     */
    public BufferedImagePos(BufferedImage _b) {
        b = _b;
    }

    /**
     * Renvoie la position
     * @return la position de l'image
     */
    public Point getPoint(){
        return p;
    }

    /**
     * Renvoie x
     * @return le point x
     */
    public int getx(){
        return p.x;
    }

    /**
     * Renvoie y
     * @return le point y
     */
    public int gety(){
        return p.y;
    }

    /**
     * Modifie le point
     * @param _p un objet Point
     */
    public void setPoint(Point _p){
        p = _p;
    }

    /**
     * Modifie la position x
     * @param x un entier x
     */
    public void setX(int x){
        p.x = x;
    }

    /**
     * Modifie la position y
     * @param y un entier y
     */
    public void setY(int y){
        p.y = y;
    }

    /**
     * Renvoie l'image
     * @return l'image affichable
     */
    public BufferedImage getBufferedImage(){
        return b;
    }

    /**
     * Modifie l'image
     * @param _b un objet de type BufferedImage
     */
    public void setBufferedImage(BufferedImage _b){
        b = _b;
    }
}
